<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //数组中元素按顺序前后两两比较，大的排后面
        //时间复杂度：O(n^2) 空间复杂度：O(1) 
        //稳定性：冒泡排序是稳定的排序算法，因为可以实现值相等的元素的相对位置不变
        function bubbleSort(arr) {
            let length = arr.length;
            for (let i = 0; i < length - 1; i++) {
                //循环第一次之后数组最后一位就是最大的，下一次循环到最后一位的前i位就行，所有-i,这样每次冒泡排序的区间都会把已排序好的区间减掉
                for (let j = 0; j < length - 1 - i; j++) {
                    //第一位和第二位比较，如果第一位比第二位大，则交换位置
                    if (arr[j] > arr[j + 1]) {
                        // const temp = arr[j];
                        // arr[j] = arr[j + 1];
                        // arr[j + 1] = temp;
                        [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];

                    }
                }
            }
            return arr;
        }
        const arr = [5, 5, 7, 2, 8, 1, 0, 4, 5, 1];
        console.log(bubbleSort(arr));
    </script>
</body>

</html>